<?php
//-------------------------------------------
//		Klasa slużaca do wykonywania zpytań do baza danych
//-------------------------------------------

class DB_class
{
	static $host = 'localhost'; //nazwa hosta	//dałem static, żeby w pliku bazaDanych.php skorzystać z tych danych. Darek
	static $user = 'root'; //uzytkownik bazy
	static $pass = 'vertrigo'; //haslo do bazy
	static $dbName = 'dzefo'; //nazwa bazy
	
	private $rows; //zbieranie danych z zapytania do bazy 
	private $error; //zwracane błędy
	private $result; //wynik zapytania
	private $connection; //string zbierający dane połączenia
	private $dbReady; //sprawdzenie czy baza jest gotowa do połączenia
	
	
//-------------------------------------------
//    Konstruktory
//-------------------------------------------

	public function __construct()
	{
		$this->result = null;
		$this->dbReady = true;
		$this->error = array();
	}
	
	public function __destruct()
	{
		@mysql_close($this->connection); 
	}

//-------------------------------------------
//    Połączenie z bazą
//-------------------------------------------
	
	public function select_db($dbName)
	{
		//mysql_select_db($this->dbName,$this->connection) or die("The said database does not exist.");
		mysql_select_db(DB_class::$dbName,$this->connection) or die("The said database does not exist.");
	}
	
	public function connect()
	{
		if(!$this->dbReady) die("Not ready to connect"); //sprawdzenie czy baza jest gotowa do połączenia
		//$this->connection = mysql_connect($this->host,$this->user,$this->pass) or die("Could not connect to database.");
		$this->connection = mysql_connect(DB_class::$host,DB_class::$user,DB_class::$pass) or die("Could not connect to database.");
		//$this->select_db($this->dbName);
		$this->select_db(DB_class::$dbName);
	}
	
	public function disconnect()
	{
		mysql_close($this->connection);
		$this->connection = null;
	}
	
	public function isConnected()
	{
		if($this->connection)
			return true;
		return false;
	}
	
//-------------------------------------------
//    Zapytania do bazy
//-------------------------------------------

 	public function query($sql)
	{
		$this->result = mysql_query($sql,$this->connection) or die("Invalid query string!");
	}
	 
	public function countRows($selectMode = true)
	{
		if($selectMode)
			return mysql_num_rows($this->result);
		return mysql_affected_rows($this->connection);
	}
	 
	public function loadRows()
	{
		if(!$this->result) die("Nothing found!");
		$this->rows = array();
		//MYSQL_ASSOC oraz MYSQL_NUM
		while($r = mysql_fetch_array($this->result,MYSQL_BOTH))
			$this->rows[] = $r;
		mysql_free_result($this->result);
		return $this->rows;
	}
		
//-------------------------------------------------------
//    Filtrowanie danych wejściowych wysyłanych do bazy
//-------------------------------------------------------

	public function filtruj($text)
	{
		// usuwanie slashy serwerowych
		if(get_magic_quotes_gpc()) 
		{
			$text = stripslashes($text);
		}
		$text = trim($text);
		$text = mysql_real_escape_string($text); 
		$text = htmlspecialchars($text);
		return $text;
	}
//-------------------------------------------------------
//    Hashowanie hasel
//-------------------------------------------------------

	public function koduj_dane($text)
	{
		return sha1(md5($text)); 
	}
}
//koniec klasy DB_class

/*
//-------------------------------------------
//    Przyklad uzycia klasy
//-------------------------------------------

		require_once 'sciezka do pliku klasy';
		//nowy obiekt
			$db = new DB_class(); 
		
		//połączenie z bazą		
			$db->connect(); 
		
		//usuniecie szkodliwego kodu z zapytan
			$nowa_wartosc = $db->filtruj($nowa_wartosc); 
		
		//wykonania zapytania
			$db->query("SELECT * FROM test_table WHERE test_field = '$nowa_wartosc' LIMIT 1");
		
		//wykonanie zapytania
			if($db->countRows()==1)
		
		//zwracanie tablicy asocjacyjnej/numerycznej z zapytania (MYSQL_BOTH)
			$dbdata = $db->loadRows(); 
			
		//zakończenie połączenia z bazą
			$db->disconnect();
*/
//koniec klasy DB_class
?>

